#include "changepassword.h"    // 包含修改密码窗口的头文件
#include "ui_changepassword.h" // 包含由Qt Designer生成的UI头文件

// 构造函数，初始化修改密码窗口
changePassword::changePassword(QWidget *parent) : QDialog(parent),           // 继承自QDialog，parent为父窗口
                                                  ui(new Ui::changePassword) // 初始化UI对象
{
    ui->setupUi(this); // 设置UI，初始化由Qt Designer生成的界面

    // 设置窗口大小
    resize(QT_WIDTH, QT_HEIGHT);
    // 设置窗口背景颜色为白色
    setStyleSheet("background-color: #FFFFFF;");

    // 创建一个栅格布局管理器
    QGridLayout *pGridLayout = new QGridLayout;

    // 创建一个标题标签
    QLabel *titleLabel = new QLabel(this);
    titleLabel->setText("忘记密码");                      // 设置文本内容
    titleLabel->setFont(QFont("Arial", 16, QFont::Bold)); // 设置字体为Arial，大小为16，加粗
    titleLabel->setFixedSize(300, 40);                    // 设置固定大小为300x40
    titleLabel->setAlignment(Qt::AlignCenter);            // 设置文本居中对齐
    titleLabel->setStyleSheet("color: #1dad28;");         // 设置文本颜色为绿色

    // 创建一个密保问题标签
    QLabel *questionlabel = new QLabel(this);
    questionlabel->setFixedSize(300, 40);                           // 设置固定大小为300x40
    questionlabel->setText("密保问题：你初三下学期的班主任是谁？"); // 设置文本内容

    // 创建一个输入框，用于输入密保问题答案
    QLineEdit *username = new QLineEdit(this);
    username->setFixedSize(300, 40);                    // 设置固定大小为300x40
    username->setPlaceholderText("请输入密保问题答案"); // 设置占位符文本

    // 创建一个输入框，用于输入新密码
    QLineEdit *password = new QLineEdit(this);
    password->setEchoMode(QLineEdit::Password);   // 设置输入模式为密码模式（输入内容显示为圆点）
    password->setFixedSize(300, 40);              // 设置固定大小为300x40
    password->setPlaceholderText("请输入新密码"); // 设置占位符文本

    // 创建一个输入框，用于再次输入新密码
    QLineEdit *password2 = new QLineEdit(this);
    password2->setEchoMode(QLineEdit::Password);       // 设置输入模式为密码模式
    password2->setFixedSize(300, 40);                  // 设置固定大小为300x40
    password2->setPlaceholderText("请再次输入新密码"); // 设置占位符文本

    // 创建一个提交按钮
    QPushButton *button1 = new QPushButton("提交");
    // 帮我把提交按钮样式搞成现代风格
    button1->setStyleSheet("QPushButton{background-color: #1dad28; color: white; border-radius: 0px;}"
                           "QPushButton:hover{background-color: #1dad28; color: white; border-radius: 0px;}"
                           "QPushButton:pressed{background-color: #1dad28; color: white; border-radius:0px;}");
    button1->setFixedSize(110, 40);
    button1->resize(110, 40); // 调整按钮大小为140x40

    // 创建一个返回按钮
    QPushButton *button2 = new QPushButton("返回");
    // 帮我把返回按钮样式搞成现代风格，背景色很浅的灰色
    button2->setStyleSheet("QPushButton{background-color: #f0f3f5; color: #666666; border-radius: 0px;}"
                           "QPushButton:hover{background-color: #f0f3f5; color: #666666; border-radius: 0px;}"
                           "QPushButton:pressed{background-color: #f0f3f5; color: #666666; border-radius:0px;}");
    button2->setFixedSize(110, 40);
    button2->resize(110, 40); // 调整按钮大小为140x40
    connect(button2, &QPushButton::clicked, [=]()
            { emit registerToLogin(); });
    QSpacerItem *left = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
    QSpacerItem *right = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
    QSpacerItem *top = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
    QSpacerItem *bottom = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
    // 将控件添加到栅格布局中
    pGridLayout->addItem(top, 0, 0, 3, 10);         // 将左侧空白区域添加到第0行第0列，跨10行3列
    pGridLayout->addItem(bottom, 10, 0, 5, 10);     // 将左侧空白区域添加到第0行第0列，跨10行3列
    pGridLayout->addItem(left, 0, 0, 10, 3);        // 将左侧空白区域添加到第0行第0列，跨10行3列
    pGridLayout->addItem(right, 0, 6, 10, 4);       // 将右侧空白区域添加到第0行第6列，跨10行4列
    pGridLayout->addWidget(titleLabel, 4, 3, 1, 8); // 将标题标签添加到第0行第3列，占1行5列
    pGridLayout->addWidget(questionlabel, 5, 3, 1, 8);
    pGridLayout->addWidget(username, 6, 3, 1, 8);
    pGridLayout->addWidget(password, 7, 3, 1, 8);
    pGridLayout->addWidget(password2, 8, 3, 1, 8);
    pGridLayout->addWidget(button1, 9, 3, 1, 3);
    pGridLayout->addWidget(button2, 9, 6, 1, 3);

    // 将栅格布局设置为窗口的主布局
    this->setLayout(pGridLayout);
}

// 析构函数，释放UI对象
changePassword::~changePassword()
{
    delete ui;
}